#include<stdio.h>
#include<iostream>
#include<string.h>
int n,m;
int zer=48;
int a[]={1,1,1,0,0,-1,-1,-1};
int b[]={-1,0,1,-1,1,-1,0,1};
using namespace std;
int main(){
	cin>>n>>m;
	char boom[n+2][m+2],mark[n+2][m+2];
	memset(boom,1,sizeof(boom)); n+=1;m+=1;
	for(int i=1;i<n;i++){
		for(int j=1;j<m;j++){
			cin>>boom[i][j];
		}
	}
	for(int i=1;i<n;i++){
		for(int j=1;j<m;j++){
			if(boom[i][j]=='*') mark[i][j]='*';
			else{
				for(int x=0;x<9;x++){
					if(boom[i+a[x]][j+b[x]]=='*') zer++;
				}
			mark[i][j]=zer;
			zer=48;
			}
		}
	}
	for(int i=1;i<n;i++){
		for(int j=1;j<m;j++){
			cout<<mark[i][j];
		}
		cout<<endl;
	}
	return 0;
}

